package com.regent.central.bill.service.mrp.delivery;

import com.regent.central.bill.core.mrp.BillMaterialDelivery;
import com.regent.central.bill.repository.mrp.dto.delivery.*;
import com.regent.central.infrastructure.service.DomainService;

import java.util.List;


public interface BillMaterialDeliveryService extends DomainService<BillMaterialDelivery> {

    /**
     * 送料单列表
     *
     * @return
     */
    BillMaterialDeliveryPageDTO findPage(BillMaterialDeliveryPageParam param);

    /**
     * 送料单下拉列表
     *
     * @param unitId
     * @return
     */

    List<String> findDeliveryOrderNosByUnitId(String unitId);

    /**
     * 新建一个送料单
     */
    void createBill(CentralBillDeliveryCreateDTO createDTO);

    /**
     * 送料单基本信息和详细信息
     *
     * @param id
     * @return
     */
    BillMaterialDeliveryDTO findDeliveryOrdersById(String id);

    /**
     * 送料单详情信息（包含bom信息）
     *
     * @param id 送料单id
     * @return
     */
    List<BillMaterialDeliveryOrderDTO> findDeliveryOrderById(String id);

    /**
     * 送料单详情（同送料列表数据结构一致，只去送料列表的一个送料单数据）
     *
     * @param deliverId
     * @return
     */
    List<BillMaterialDeliveryListDTO> findDetailById(String deliverId);

    /**
     * 撤销送料单
     *
     * @param billMaterialDeliveryId 送料单ID
     */
    BillMaterialDeliveryUndoResult undo(String billMaterialDeliveryId);
}